The following example demonstrates how to add Person data to a custom ObservableCollection of Person objects. 

XAML
Copy Code
<Grid xmlns:xcdg="http://schemas.xceed.com/wpf/xaml/datagrid"

      xmlns:local="clr-namespace:Xceed.Wpf.Documentation"

      xmlns:scm="clr-namespace:System.ComponentModel;assembly=WindowsBase">

  <Grid.Resources>

   <local:PersonObservableCollection x:Key="personData">

     <local:Person FirstName="Jenny"

                   LastName="Beland"

                   Occupation="Writer"/>

     <local:Person FirstName="Francois"

                   LastName="Carignan"

                   Occupation="Developer"/>

     <local:Person FirstName="Pascal"

                   LastName="Bourque"

                   Occupation="Developer"/>

     <local:Person FirstName="Michel"

                   LastName="Fortin"

                   Occupation="Developer"/>

     <local:Person FirstName="Marc"

                   LastName="Laroche"

                   Occupation="Developer"/>

     <local:Person FirstName="Pierre-Luc"

                   LastName="Ledoux"

                   Occupation="Developer"/>

     <local:Person FirstName="Mathieu"

                   LastName="Drimonakos"

                   Occupation="TechnicalSupport"/>

     <local:Person FirstName="Catherine"

                   LastName="Sauzede"

                   Occupation="Infograph"/>

   </local:PersonObservableCollection>

   <xcdg:DataGridCollectionViewSource x:Key="cvs_person"

                                      ItemType="{x:Type local:Person}"

                                      Source="{StaticResource personData}">

      <xcdg:DataGridCollectionViewSource.GroupDescriptions>

        <xcdg:DataGridGroupDescription PropertyName="Occupation"/>

      </xcdg:DataGridCollectionViewSource.GroupDescriptions>

      <xcdg:DataGridCollectionViewSource.SortDescriptions>

        <scm:SortDescription PropertyName="Occupation"

                              Direction="Ascending"/>

      </xcdg:DataGridCollectionViewSource.SortDescriptions>

    </xcdg:DataGridCollectionViewSource>

  </Grid.Resources>

 <xcdg:DataGridControl x:Name="PersonGrid"

                       ItemsSource="{Binding Source={StaticResource cvs_person}}"/>

</Grid>
VB.NET
Copy Code
Dim people As New ObservableCollection( Of Person )()

people.Add( New Person( "Jenny", "Beland" ) )

people.Add( New Person( "Francois", "Carignan" ) )

people.Add( New Person( "Jacques", "Bourque" ) )

people.Add( New Person( "Pascal", "Bourque" ) )

people.Add( New Person( "Marc", "Laroche" ) )

people.Add( New Person( "Pierre-Luc", "Ledoux" ) )

people.Add( New Person( "Catherine", "Sauzede" ) )

people.Add( New Person( "Christian", "Nadeau" ) )

Dim collectionView As New DataGridCollectionView( people, GetType( Person ) )

dataGridControl.ItemsSource = collectionView
C#
Copy Code
ObservableCollection<Person> people = new ObservableCollection<Person>();

people.Add( new Person( "Jenny", "Beland" ) );

people.Add( new Person( "Francois", "Carignan" ) );

people.Add( new Person( "Jacques", "Bourque" ) );

people.Add( new Person( "Pascal", "Bourque" ) );

people.Add( new Person( "Marc", "Laroche" ) );

people.Add( new Person( "Pierre-Luc", "Ledoux" ) );

people.Add( new Person( "Catherine", "Sauzede" ) );

people.Add( new Person( "Christian", "Nadeau" ) );

DataGridCollectionView collectionView = new DataGridCollectionView( people, typeof( Person ) );

dataGridControl.ItemsSource = collectionView;